Method and apparatus for improving bandwidth efficiency in a computer network

ABSTRACT

A method for operating a server to improve bandwidth efficiency in a computer network is disclosed. The server is operable to transmit files between a memory of the server and destinations on the computer network through a communication link having a finite bandwidth. The files are distinguishable by type and the server is provided with a rule set for prioritizing transmission of files by type. The method comprises monitoring a bandwidth usage of the communication link, and triggering application of the rule set when the bandwidth usage exceeds a threshold amount. The threshold amount is determined relative to the finite bandwidth. The method further comprises distinguishing between the files according to type, and prioritizing transmission of the files according to type and according to the rule set.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/189,417, filed on Aug. 11, 2008, which is a continuation of U.S.patent application Ser. No. 09/932,431, filed on Aug. 17, 2001 which isnow U.S. Pat. No. 7,412,514, which claims priority pursuant to 35 U.S.C.§119(e) to U.S. Provisional Application No. 60/225,888, filed Aug. 17,2000, all of which are specifically incorporated herein by reference intheir entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method and apparatus for improvingbandwidth efficiency in a computer network. More specifically, thisinvention pertains to a bandwidth management tool that implements a setof rules for directing network traffic according to current networkbandwidth levels.

2. Description of the Related Art

Bandwidth is a critical resource and a key cost for Internet serviceproviders (ISPs) in particular. Reliable bandwidth usage auditing andmonitoring is important in two types of Web hostings offered by ISPs,i.e., “co-location” and “dedicated/shared-services. The Internet is acollection of interconnected (public and/or private) networks linkedtogether by a set of standard protocols (such as TCP/IP and HTTP) toform a global, distributed network. As used herein, “Internet” isintended to refer to what is now commonly known as the Internet, it isalso intended to encompass variations which may be made in the future,including changes and additions to existing standard protocols.

Bandwidth refers to maximum available bit rate for a specificapplication. In the context of a communication link of a computernetwork, bandwidth refers the maximum information rate that may betransmitted through the link. As used herein, the bandwidth capacity ofa communication link includes any limitations such as arise fromcharacteristics of servers, routers, and other network devices along alink.

Overuse of available bandwidth is generally undesirable. Althoughcertain latency is inherently associated with any computer network(latency refers to the delay experienced by a packet from the source todestination), when bandwidth usage of a communication link approaches orsaturates the bandwidth (capacity) of a communication link, increasedlatency and/or transmission failure results. Therefore, it is desirableto operate a computer network so as to preserve a margin of excessbandwidth at all times.

Bandwidth is also a commodity that may be assigned a definite economicvalue. In co-location services, a customer owns a dedicated Web serverlocated at an Internet Service Provider's (ISP's) facility, andpurchases Internet bandwidth from the ISP. The ISP buys bandwidth inbulk and resells it to each customer. Bandwidth is typically purchasedin blocks. For example, a company may pay a fixed amount for a block ofone hundred megabits of bandwidth. When bandwidth usage exceeds thisamount, the company either incurs surcharges (in the event that it hasacquired the ability to “burst” over the paid amount) or hits a cap, andis unable to serve all of the content that has been requested of it. Theformer results in undesired extra charges, with the latter resultsportions of the content being indiscriminately not served.

In dedicated-server service, customers rent dedicated servers that areowned and maintained by the ISP. In shared-server service, customersrent disk space, and share CPU and ETHERNET bandwidth with other websitecustomers on the ISP's equipment. While this provides a low cost servicefor the customer, it frequently results in an overcrowding of theequipment and long delays or inaccessibility of the sites sharing theserver. When the ISP has a clear picture of usage patterns, users can berelocated onto servers that do not clash with other users, or changed todedicated-server service.

Accordingly, customers and ISP's alike desire accurate auditing,monitoring, and allocation of the bandwidth usage by each Web hostingcustomer. Current software tools for these tasks are not optimal.

The Web hosting business is becoming increasingly competitive. Customersare demanding guaranteed serviced and accountability for the accessbandwidth charges by their ISPs. The customers too desire to monitortheir own usage patterns in real time. It is further desirable toprovide a guaranteed quality of service to improve customersatisfaction. In addition, unlike hit-rate data provided by othersoftware, bandwidth usage patterns give web site owners a different wayfor gauging responses to changes in content on their sites.

A prior art pure-software approach to bandwidth management implements apriority-based queuing algorithm completely in UNIX or WINDOWS. Theseimplementations usually have too much operating system overhead andthroughput rarely exceeds 1,000 Kb/s. A prior art pure hardware approachimplements a control algorithm in logic. But only very simple algorithmsare practical, such as packet counting and dropping when a bandwidthlimit is reached. These basic approaches can drop too many packetsunnecessarily, which results in massive re-transmission on the Internet.Instead of improving throughput, these algorithms may actually degradethe network. A further disadvantages of hardware methods is that newfeatures, e.g., Internet Protocol versions upgrades, generally requirereplacement of hardware equipment.

Routers are commonly used in the art and typically implement the use ofheaders and a forwarding table to determine the path in which datapackets are sent. Very little filtering of data is done through routers.In fact, most routers do not distinguish between the different types ofdata being transmitted. Nevertheless, bandwidth management strategiesare typically implemented at the router level. In networks where filesof various types and sizes are frequently passed, however, thesestrategies are often inefficient.

Accordingly, it would be desirable to provide a method and apparatus formonitoring and optimizing bandwidth usage.

SUMMARY OF THE INVENTION

The present invention provides a system and method for operating aserver to improve bandwidth efficiency in a computer network, thatovercomes the limitations of the prior art. The server is operable totransmit files between a memory of the server and destinations on thecomputer network through a communication link having a finite bandwidth.The files are distinguishable by type and the server is provided with arule set for prioritizing transmission of files by type. The methodcomprises monitoring a bandwidth usage of the communication link, andtriggering application of the rule set when the bandwidth usage exceedsa threshold amount. The threshold amount is determined relative to thefinite bandwidth. The method further comprises distinguishing betweenthe files according to type, and prioritizing transmission of the filesaccording to type and according to the rule set.

Bandwidth conditions of a given link may vary under differentenvironmental conditions. In practice, synchronous, interactive, andreal-time applications, which are bandwidth-sensitive, can requireminimum bandwidth guarantees, and can require sustained and burst-scalebit rates. On the other hand, network administrators may want to limitbandwidth taken by non-productive traffic. Even though bandwidth may beallocated for specified applications, it does not mean that theseapplications are necessarily using that bandwidth. Therefore, theinvention provides for enforcing bandwidth restrictions and rules forallocating bandwidth differently, depending on transient networkconditions.

A rule set will herein be defined to be a set of techniques ormechanisms including policies that can be applied in a network to managelimited network resources such as bandwidth and the like. Thesetechniques are intended to improve overall network performance andefficiency. They are also intended to provide for more predictabilityand orderliness in the event of network congestion. The techniquesshould also isolate faults and provide visibility into performanceproblems. Additionally, they should meet the diverse user andapplication requirements as per an organization's business goals.Furthermore, rule sets are intended to increase the “goodput” traffic,i.e., economically desirable traffic, and prevent the abuse of networkresources.

The invention further provides various methods for distinguishingbetween files and thus enables classification of any given file by filetype. The rule set is then applied to control the rate of transmissionof the file, or whether to allow transmission of a file at all,depending on its file type and on other parameters such as the bandwidthusage and network conditions. The file type may be determined when afile is requested for transfer, or by a disk (memory) crawling agent atperiodic intervals. Furthermore, a group of file servers, such as in aserver farm, may be instructed to operate according to the same ruleset. Modified rule sets or portions thereof may periodically bebroadcast to servers in the farm from a master server.

When a predetermined bandwidth threshold is reached on a communicationlink, a rule set for reducing bandwidth demand may be applied by theserver. The rule set preferably provides different rules for applicationunder different conditions. For example, if bandwidth is being used at80% of capacity, a first rule may be applied. If bandwidth usageincreases to 90%, a second rule may be applied, that reduces networkdemand more than the first rule. In general, the rule set operates torestrict demand by restricting access to bandwidth according to filepriority.

A more complete understanding of a method and apparatus for improvingbandwidth efficiency in a computer network will be afforded to thoseskilled in the art, as well as a realization of additional advantagesand objects thereof, by a consideration of the following detaileddescription of the preferred embodiment. Reference will be made to theappended sheets of drawings which will first be described briefly.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram demonstrating a preferred embodiment of theinvention; and

FIG. 2 is a flow chart outlining the operation of a bandwidth managementsystem according to a preferred embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The present invention is directed towards a method and apparatus forimproving bandwidth efficiency in a computer network. Combining serversand processing power into a single entity has been relatively common formany years in research and academic institutions. In the detaileddescription that follows, like element numerals are used to describelike elements illustrated in one or more figures.

A rule set will herein be defined to be a set of techniques ormechanisms including policies that can be applied in a network to managelimited network resources such as bandwidth and the like. Thesetechniques are intended to improve overall network performance andefficiency. They are also intended to provide for more predictabilityand orderliness in the event of network congestion. The techniquesshould also isolate faults and provide visibility into performanceproblems. Additionally, they should meet the diverse user andapplication requirements as per an organization's business goals.Furthermore, rule sets are intended to improve bandwidth efficiencybased on the economic value of network resources.

Preferred embodiments of the present invention operate in accordancewith a plurality of networked computers, such as, for example, a usercomputer and a server computer which are coupled together on acommunications network, such as the Internet or a wide area network.FIG. 1 depicts a block diagram demonstrating a preferred embodiment ofthe invention. As illustrated, an ISP computer system 10 is shown tocommunicate with a plurality of user computer systems 30 via theInternet 20. It should be appreciated that user computers 30 may includeany type of computing device that allows a user to interactively browsewebsites, such as a personal computer (PC) that includes a Web browserapplication 32 (e.g., Microsoft Internet Explorer™ or NetscapeCommunicator™) Suitable user computers 30 equipped with browsers 32 areavailable in many configurations, including handheld devices (e.g.,PalmPilot™), personal computers (PC), laptop computers, workstations,television set-top devices, multi-functional cellular phones, and soforth.

In a preferred embodiment of the invention, ISP computer system 10further comprises a bandwidth management tool 12 coupled to a routerunit 14 and to a Web server farm 16 connected to an HTML documentsdatabase 17. Router unit 14 may comprise a plurality of routersconnecting any number of computers in a network. The type of routersused in a preferred embodiment can be of any standard type as known inthe art.

Web server farms such as Web server farm 16 are generally known in theart and are typically comprised of a plurality of Web servers. Inpractice, a Web server farm typically refers to an ISP that provides Webhosting services using multiple servers. More specifically, a serverfarm is a group of networked Web servers that are housed in onelocation. In a preferred embodiment, Web server farm 16 streamlinesinternal processes by distributing the workload between the individualcomponents of the farm and expedites computing processes by harnessingthe power of its multiple servers. Web server farms such as Web serverfarm 16 typically rely on load-balancing software that accomplishes suchtasks as tracking demand for processing power from different machines,prioritizing the tasks and scheduling and rescheduling them depending onpriority and demand that users put on the network. When one server inthe farm fails, another server may be used as a backup.

As is also generally known in the art, Web servers such as those in Webfarm 16 access a plurality of Web pages, distributable applications, andother electronic files containing information of various types stored inHTML document databases 17. As a result, Web pages may be viewed onvarious user computers 30; for example, a particular Web page or otherelectronic file may be viewed through a suitable application programresiding on a. user computer 30, such as a browser 32, or by adistributable application provided to the user computer 30 by a Webserver. It should be appreciated that many different user computers,many different Web servers, and many different search servers of varioustypes may be communicating with each other at the same time.

It should be further appreciated that a user identifies a Web page thatis desired to be viewed at the user computer 30 by communicating an HTTP(Hyper-Text Transport Protocol) request from the browser application 32.The HTTP request includes the Uniform Resource Locator (URL) of thedesired Web page, which may correspond to an HTML document stored in theHTML documents databases 17. The HTTP request is routed to the Webservers via the Internet 20. The Web servers then retrieve the HTMLdocument identified by the URL, and communicate the HTML document acrossthe Internet 20 to the browser application 32. The HTML document may becommunicated in the form of plural message packets as defined bystandard protocols, such as the Transport Control Protocol/InternetProtocol (TCP/IP).

In a preferred embodiment of the invention, a software agent is createdand stored within the bandwidth management tool 12 in order to monitorbandwidth usage in a computer network. More specifically, a networkmanager creates a general set of formulas that can be used to createrules applicable at different bandwidth levels either constantly or atappropriate intervals. For example, the rule for “mp3” files might be:full speed until 90% of bandwidth is achieved; then between 90% and 95%,slow service to a maximum of 1 kbps multiplied by the current bandwidthpercentage minus 90, then above 95%, slow service to a maximum of 0.5kbps multiplied by the current bandwidth percentage minus 90. So, thereis a master rule set that is created which can be used by the softwareagent to generate the specified rule set in light of the then-currentbandwidth level.

For further example, the rule set may be as follows:

-   -   Maintain below 95% of the 100 megabit cap by invoking as many of        the rules (in order) as are necessary:        -   1. Block service of any files of non-standard types;        -   2. Block service of any “.zip” files;        -   3. Cap the speed by which portions of any file exceeding 500            k are served;        -   4. Block service of any file larger than 1 megabyte;        -   5. Block service of any files from the “fundownloads”            directory.

In addition, the rule set may include formulaic rules, such as “reducethe maximum file size that may be served by 50 k every minute until abandwidth threshold is no longer exceeded.”

So long as the bandwidth usage remains below a specified cap, nolimitations are placed on file types or sizes available for download.Once bandwidth usage passes a specified amount (e.g., 95% of the cap, or95 megabits out of a 100 megabit pipe), the software agent issuescommands (either via a network connection, altering the contents of ashared file, or otherwise) that change the behavior of the web server tolimit bandwidth based on a specified rule set. The rule set may limitthe download speed of specified files (potentially based upon filesize), may limit the file types that may be downloaded, the sites thatmay be downloaded from, may limit the file sizes that may be downloaded,or may otherwise change the behavior of the web servers based uponoverall enterprise bandwidth use. In the above description, it should beappreciated that such rules may also apply to file uploads.

In a preferred embodiment, a software agent obtains a list of all filenames and their corresponding file sizes in order to determine, whichfiles match specific rule-set criteria. The software then manipulatesthe file names to determine whether they are in fact likely to be partsof a single, larger file. As a first step, the software agent may deleteall numbers from selected file names. Any files that are identicallynamed after the elimination of all numbers would then be marked aspotentially restrictive and their names and aggregate size would bereported. Of course, this can be limited to numbers in conjunction withspecified letters (such as r00, r41, etc., as the “r” denotation oftenindicates file compression and division via the RAR method). Similarly,this can be limited to specified file types or files other thanspecified types (for example, graphics files such as *.jpg are oftensequentially numbered and may be a good candidate for exclusion).

FIG. 2 shows a flow chart outlining exemplary operation of a bandwidthmanagement tool 12 according to an embodiment of the invention. Thisprocedure begins at step 100 with a query being made of all routerswithin router unit 14. Individual results from this query are thencompiled by the bandwidth management tool 12 in order to calculate thetotal network bandwidth at step 105. A comparison is then made at step110 between the master rule set and the calculated network bandwidth.Depending on how much network bandwidth is being used, the bandwidthmanagement tool 12 then continues at step 115 by determining whether aparticular rule-driven action should be made. If an action is indeedrequired at step 115, then the bandwidth management tool 12 nextdetermines which specific rule corresponds to the current bandwidthconditions of the network at step 120; otherwise, the procedure repeatsitself by simply returning to step 100 where the bandwidth managementtool 12 again queries router unit 14. Once a specific rule is selectedat step 120, the selected rule is then broadcast to all appropriate Webservers within Web server farm 16 at step 125 and then executedaccordingly at step 130. The bandwidth management tool 12 then repeatsthis procedure by returning to step 100 where another router unit 14query is made.

It should be appreciated that alternative embodiments of the inventionmay be implemented in which the described master rule set is programmedinto each Web server in Web server farm 16 instead of a centralizedlocation (i.e., the bandwidth management tool). In such embodiments,however, it should be further appreciated that router unit 14 queries,such as those described in step 100 of the flow chart in FIG. 2, must bemade by each server in Web server farm 16.

Various methods may be used for classifying files for purposes ofprioritization. Files may be classifies at the time a file is requestedfor transmittal to or from the server. In the alternative, software may“crawl” through the file storage memory of a web server to classifyfiles found there. For example a disk crawling agent may seek toidentify files that are grouped according to a file naming or directorynaming scheme that would permit aggregation of the group files into asingle file. Such files are likely to be illicit or undesirable. Forexample, the software may crawl through the directory structure andobtains a list of all file names and the corresponding file sizes. Thesoftware then manipulates the file names to determine whether they arein fact likely to be parts of a single, larger file. Similarly, filecrawling may be used to identify specified file types or files otherthan specified types (for example, graphics files such as *.jpg areoften sequentially numbered.

A web crawling agent may also employ a method for identifying data filesthat are stored on a file server of one web site but not referenced inany hypertext coding on that website. In this embodiment, the softwarecrawls through a directory and identifies hypertext files. Similarly,all non-hypertext files that exceed a user defined size threshold aremarked. Then, each of the hypertext files is analyzed by the software ina search for references to the data files previously identified. Anydata file that is not referenced by a hypertext file in that directorymay marked as low priority or illicit. It should be appreciated thatmany other methods for classifying files are possible, and will ofnecessity be adapted as the Internet and its uses evolve over time.

According to an embodiment of the invention, bandwidth regulation—i.e.,the applied rule set—is modified based upon geographic origin of therequest and/or language of the request. The geographic origin of arequest may be determined from a purchased table of IP addresses andlocation. Also, the language of an HTTP request from any major browsersoftware may be determined from a language preference command in therequest header. In the alternative, language may be used as an indicatorfor location or origin. For example, a message requesting EN-GB, whichstands for English, Great Britain dialect, is most likely located inGreat Britain. The rule set may be configured to restrict traffic fromor to certain geographic areas or in designated languages. For example,by throughput rate to people requesting content in Japanese may belimited to a portion, such as 60%, of comparable rates for requestsdesignating EN-US (English-U.S.). The economic benefit of this approachmay be substantial. For example, if a free web hosting operation is ableto sell ads for all Japanese traffic for $1 per 1000 displays, but onEnglish-US displays the price is $5 per 1000 displays, an enormousfinancial benefit may follow from reducing Japanese traffic in favor ofEN-US traffic when bandwidth limitations require a reduction in traffic.Vice-versa, if the rate for Japanese-language display ads is higher, theEnglish-US traffic may be reduced.

Having thus described a preferred embodiment of a method and apparatusfor improving bandwidth efficiency in a computer network, it should beapparent to those skilled in the art that certain advantages of thewithin system have been achieved. It should also be appreciated thatvarious modifications, adaptations, and alternative embodiments thereofmay be made within the scope and spirit of the present invention. Theinvention is further defined by the following claims.

1. A method comprising: monitoring bandwidth usage of a communicationlink connecting a computing system to a network; determining a currentstate of bandwidth usage based on at least the monitoring; receiving arequest from a requesting computer for a stored file; and transmitting,in response to the request, the stored file from the computing system tothe requesting computer via the communication link in compliance with arule set defining rules for limiting serving of files based on at leasta current state of the bandwidth usage and a geographic originassociated with the request, so as to not permit serving of files fromthe computing system during periods when the bandwidth usage exceeds athreshold amount and the request is associated with a particulargeographic origin, while permitting serving of the files from thecomputing system when the bandwidth usage does not exceed the thresholdamount.
 2. The method of claim 1, further comprising classifying thefile on the computing system according to a file type.
 3. The method ofclaim 1, further comprising classifying the file served from thecomputing system into a defined one of a plurality of distinct filetypes, prior to serving the file from the computing system.
 4. Themethod of claim 3, wherein classifying the file is performed by thecomputing system in response to receiving the request.
 5. The method ofclaim 3, wherein classifying the file is performed by crawling throughthe file stored on the computing system
 6. The method of claim 1,further comprising assigning a type to the file based on a correspondingfile size for the file.
 7. The method of claim 1, further comprisingclassifying the file into a defined type based on a corresponding filename extension for the file.
 8. The method of claim 1, furthercomprising identifying whether the file has characteristics indicatingthat the file is configured to be aggregated into a larger file.
 9. Themethod of claim 1, further comprising determining which rule from therule set is to be currently operable, in response to the current stateof the bandwidth usage.
 10. The method of claim 9, further comprisingchanging which files are served from the computing system in response tochanges in the currently operable rule.
 11. The method of claim 1,further comprising broadcasting updates to the rule set from thecomputing system to cooperating servers of a server farm, to alter rulescontrolling serving files in response to bandwidth utilization.
 12. Themethod of claim 1, further comprising receiving an update to the ruleset, to alter rules controlling serving files in response to bandwidthutilization.
 13. The method of claim 1, further comprising determiningwhich rule from the rule set is to be currently operable, in response toa language associated with the request.
 14. A tangible computer-readablemedium encoded with instructions encoded thereon, wherein theinstructions are readable by the computing device in order to cause thecomputing device to perform operations comprising: monitoring bandwidthusage of a communication link connecting the computing system to anetwork; determining a current state of bandwidth usage based on atleast the monitoring; receiving a request from a requesting computer fora stored file; and transmitting, in response to the request, the storedfile from the computing system to the requesting computer via thecommunication link in compliance with a rule set defining rules forlimiting serving of files based on at least a current state of thebandwidth usage and one or more of a geographic origin or languageassociated with the request.
 15. The tangible computer-readable mediumof claim 14, wherein the rules prevent serving of files from thecomputing system during periods when the bandwidth usage exceeds athreshold amount and the request is associated with one or more of aparticular geographic origin or language, while permitting serving ofthe files from the computing system when the bandwidth usage does notexceed the threshold amount.
 16. The tangible computer-readable mediumof claim 14, wherein the operations further comprise classifying thestored file according to a file type.
 17. The tangible computer-readablemedium of claim 14, wherein the operations further comprise classifyingthe stored file into a defined one of a plurality of distinct filetypes.
 18. The tangible computer-readable medium of claim 17, whereinthe operations further comprise classifying the file in response toreceiving the request.
 19. The tangible computer-readable medium ofclaim 14, wherein the operations further comprise assigning a type thefile based on a corresponding file size for the file.
 20. A computingsystem comprising: a processor; and a computer readable medium storingmachine-executable instructions including one or more modules configuredfor execution by the processor in order to cause the computing systemto: determine a current state of bandwidth usage of one or more computernetworks; and transmit files via the one or more computer networks incompliance with a rule set defining rules for limiting transmitting offiles, wherein the rule set is selected based on at least the currentstate of bandwidth usage and a geographic origin of a request for astored filed.
 21. The computer system of claim 20, wherein one or moremodules further cause the computing system to select a rule from therule set that is to be currently operable, in response to a languageassociated with the request.
 22. A method for execution by one or moresuitably configured computing devices, the method comprising: monitoringbandwidth usage of a communication link connecting one or more computingdevices to a network; determining a current state of bandwidth usagebased on at least the monitoring; in response to determining that thebandwidth usage is greater than or equal to a predetermined threshold:identifying one or more files that are configured to be aggregated intoa larger file for which transfer via the communication link has beenrequested; and preventing transmission of the one or more identifiedfiles via the communication link; and in response to determining thatthe bandwidth usage is less than the predetermined threshold, permittingtransmission via the communication link of files that are configured tobe aggregated into a larger file.
 23. The method of claim 22, furthercomprising classifying files into respective defined types based oncorresponding file name extensions for the files.
 24. The method ofclaim 22, further comprising assigning a type to ones of the files basedon a corresponding file size for the files.
 25. The method of claim 22,wherein said preventing is only performed if the transfer request isassociated with a particular geographic origin or language.
 26. Acomputing system containing machine-executable instructions operable totransmit files to destinations on one or more computer networks, whereinin response to execution of the machine-executable instructions, thecomputing system performs operations comprising: monitoring bandwidthusage of a communication link connecting the computing system to one ormore computer networks; determining a current state of bandwidth usagebased on at least the monitoring; in response to determining that thebandwidth usage is greater than or equal to a predetermined threshold:identifying one or more files that are configured to be aggregated intoa larger file for which transfer via the communication link has beenrequested; and preventing transmission of the one or more identifiedfiles via the communication link; and in response to determining thatthe bandwidth usage is less than the predetermined threshold, permittingtransmission via the communication link of files that are configured tobe aggregated into a larger file.
 27. The computing system of claim 26,further comprising classifying the one or more files into respectivedefined types based on corresponding file name extension for the files.28. The computing system of claim 26, further comprising assigning atype to ones of the files based on a corresponding file size for thefiles.
 29. The computing system of claim 26, wherein said preventing isonly performed if the transfer request is associated with a particulargeographic origin or language.